home *** CD-ROM | disk | FTP | other *** search
/ Aminet 4 / Aminet 4 - November 1994.iso / aminet / dev / gcc / gcc260_base.lha / gnu / os-include / inline / amigaguide.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-07-27  |  7.6 KB  |  272 lines

  1. #ifndef _INLINE_AMIGAGUIDE_H
  2. #define _INLINE_AMIGAGUIDE_H
  3.  
  4. #include <sys/cdefs.h>
  5. #include <inline/stubs.h>
  6.  
  7. __BEGIN_DECLS
  8.  
  9. #ifndef BASE_EXT_DECL
  10. #define BASE_EXT_DECL
  11. #define BASE_EXT_DECL0 extern struct AmigaGuideBase*  AmigaGuideBase;
  12. #endif
  13. #ifndef BASE_PAR_DECL
  14. #define BASE_PAR_DECL
  15. #define BASE_PAR_DECL0 void
  16. #endif
  17. #ifndef BASE_NAME
  18. #define BASE_NAME AmigaGuideBase
  19. #endif
  20.  
  21. BASE_EXT_DECL0
  22.  
  23. static __inline APTR 
  24. AddAmigaGuideHostA (BASE_PAR_DECL struct Hook *h,STRPTR name,struct TagItem *attrs)
  25. {
  26.   BASE_EXT_DECL
  27.   register APTR  _res  __asm("d0");
  28.   register struct AmigaGuideBase* a6 __asm("a6") = BASE_NAME;
  29.   register struct Hook *a0 __asm("a0") = h;
  30.   register STRPTR d0 __asm("d0") = name;
  31.   register struct TagItem *a1 __asm("a1") = attrs;
  32.   __asm __volatile ("jsr a6@(-0x8a)"
  33.   : "=r" (_res)
  34.   : "r" (a6), "r" (a0), "r" (d0), "r" (a1)
  35.   : "a0","a1","d0","d1", "memory");
  36.   return _res;
  37. }
  38. static __inline ULONG 
  39. AmigaGuideSignal (BASE_PAR_DECL APTR cl)
  40. {
  41.   BASE_EXT_DECL
  42.   register ULONG  _res  __asm("d0");
  43.   register struct AmigaGuideBase* a6 __asm("a6") = BASE_NAME;
  44.   register APTR a0 __asm("a0") = cl;
  45.   __asm __volatile ("jsr a6@(-0x48)"
  46.   : "=r" (_res)
  47.   : "r" (a6), "r" (a0)
  48.   : "a0","a1","d0","d1", "memory");
  49.   return _res;
  50. }
  51. static __inline void 
  52. CloseAmigaGuide (BASE_PAR_DECL APTR cl)
  53. {
  54.   BASE_EXT_DECL
  55.   register struct AmigaGuideBase* a6 __asm("a6") = BASE_NAME;
  56.   register APTR a0 __asm("a0") = cl;
  57.   __asm __volatile ("jsr a6@(-0x42)"
  58.   : /* no output */
  59.   : "r" (a6), "r" (a0)
  60.   : "a0","a1","d0","d1", "memory");
  61. }
  62. static __inline void 
  63. ExpungeXRef (BASE_PAR_DECL0)
  64. {
  65.   BASE_EXT_DECL
  66.   register struct AmigaGuideBase* a6 __asm("a6") = BASE_NAME;
  67.   __asm __volatile ("jsr a6@(-0x84)"
  68.   : /* no output */
  69.   : "r" (a6)
  70.   : "a0","a1","d0","d1", "memory");
  71. }
  72. static __inline LONG 
  73. GetAmigaGuideAttr (BASE_PAR_DECL Tag tag,APTR cl,ULONG *storage)
  74. {
  75.   BASE_EXT_DECL
  76.   register LONG  _res  __asm("d0");
  77.   register struct AmigaGuideBase* a6 __asm("a6") = BASE_NAME;
  78.   register Tag d0 __asm("d0") = tag;
  79.   register APTR a0 __asm("a0") = cl;
  80.   register ULONG *a1 __asm("a1") = storage;
  81.   __asm __volatile ("jsr a6@(-0x72)"
  82.   : "=r" (_res)
  83.   : "r" (a6), "r" (d0), "r" (a0), "r" (a1)
  84.   : "a0","a1","d0","d1", "memory");
  85.   return _res;
  86. }
  87. static __inline struct AmigaGuideMsg *
  88. GetAmigaGuideMsg (BASE_PAR_DECL APTR cl)
  89. {
  90.   BASE_EXT_DECL
  91.   register struct AmigaGuideMsg * _res  __asm("d0");
  92.   register struct AmigaGuideBase* a6 __asm("a6") = BASE_NAME;
  93.   register APTR a0 __asm("a0") = cl;
  94.   __asm __volatile ("jsr a6@(-0x4e)"
  95.   : "=r" (_res)
  96.   : "r" (a6), "r" (a0)
  97.   : "a0","a1","d0","d1", "memory");
  98.   return _res;
  99. }
  100. static __inline STRPTR 
  101. GetAmigaGuideString (BASE_PAR_DECL long id)
  102. {
  103.   BASE_EXT_DECL
  104.   register STRPTR  _res  __asm("d0");
  105.   register struct AmigaGuideBase* a6 __asm("a6") = BASE_NAME;
  106.   register long d0 __asm("d0") = id;
  107.   __asm __volatile ("jsr a6@(-0xd2)"
  108.   : "=r" (_res)
  109.   : "r" (a6), "r" (d0)
  110.   : "a0","a1","d0","d1", "memory");
  111.   return _res;
  112. }
  113. static __inline LONG 
  114. LoadXRef (BASE_PAR_DECL BPTR lock,STRPTR name)
  115. {
  116.   BASE_EXT_DECL
  117.   register LONG  _res  __asm("d0");
  118.   register struct AmigaGuideBase* a6 __asm("a6") = BASE_NAME;
  119.   register BPTR a0 __asm("a0") = lock;
  120.   register STRPTR a1 __asm("a1") = name;
  121.   __asm __volatile ("jsr a6@(-0x7e)"
  122.   : "=r" (_res)
  123.   : "r" (a6), "r" (a0), "r" (a1)
  124.   : "a0","a1","d0","d1", "memory");
  125.   return _res;
  126. }
  127. static __inline LONG 
  128. LockAmigaGuideBase (BASE_PAR_DECL APTR handle)
  129. {
  130.   BASE_EXT_DECL
  131.   register LONG  _res  __asm("d0");
  132.   register struct AmigaGuideBase* a6 __asm("a6") = BASE_NAME;
  133.   register APTR a0 __asm("a0") = handle;
  134.   __asm __volatile ("jsr a6@(-0x24)"
  135.   : "=r" (_res)
  136.   : "r" (a6), "r" (a0)
  137.   : "a0","a1","d0","d1", "memory");
  138.   return _res;
  139. }
  140. static __inline APTR 
  141. OpenAmigaGuideA (BASE_PAR_DECL struct NewAmigaGuide *nag,struct TagItem *tags)
  142. {
  143.   BASE_EXT_DECL
  144.   register APTR  _res  __asm("d0");
  145.   register struct AmigaGuideBase* a6 __asm("a6") = BASE_NAME;
  146.   register struct NewAmigaGuide *a0 __asm("a0") = nag;
  147.   register struct TagItem *a1 __asm("a1") = tags;
  148.   __asm __volatile ("jsr a6@(-0x36)"
  149.   : "=r" (_res)
  150.   : "r" (a6), "r" (a0), "r" (a1)
  151.   : "a0","a1","d0","d1", "memory");
  152.   return _res;
  153. }
  154. static __inline APTR 
  155. OpenAmigaGuideAsyncA (BASE_PAR_DECL struct NewAmigaGuide *nag,struct TagItem *attrs)
  156. {
  157.   BASE_EXT_DECL
  158.   register APTR  _res  __asm("d0");
  159.   register struct AmigaGuideBase* a6 __asm("a6") = BASE_NAME;
  160.   register struct NewAmigaGuide *a0 __asm("a0") = nag;
  161.   register struct TagItem *d0 __asm("d0") = attrs;
  162.   __asm __volatile ("jsr a6@(-0x3c)"
  163.   : "=r" (_res)
  164.   : "r" (a6), "r" (a0), "r" (d0)
  165.   : "a0","a1","d0","d1", "memory");
  166.   return _res;
  167. }
  168. static __inline LONG 
  169. RemoveAmigaGuideHostA (BASE_PAR_DECL APTR hh,struct TagItem *attrs)
  170. {
  171.   BASE_EXT_DECL
  172.   register LONG  _res  __asm("d0");
  173.   register struct AmigaGuideBase* a6 __asm("a6") = BASE_NAME;
  174.   register APTR a0 __asm("a0") = hh;
  175.   register struct TagItem *a1 __asm("a1") = attrs;
  176.   __asm __volatile ("jsr a6@(-0x90)"
  177.   : "=r" (_res)
  178.   : "r" (a6), "r" (a0), "r" (a1)
  179.   : "a0","a1","d0","d1", "memory");
  180.   return _res;
  181. }
  182. static __inline void 
  183. ReplyAmigaGuideMsg (BASE_PAR_DECL struct AmigaGuideMsg *amsg)
  184. {
  185.   BASE_EXT_DECL
  186.   register struct AmigaGuideBase* a6 __asm("a6") = BASE_NAME;
  187.   register struct AmigaGuideMsg *a0 __asm("a0") = amsg;
  188.   __asm __volatile ("jsr a6@(-0x54)"
  189.   : /* no output */
  190.   : "r" (a6), "r" (a0)
  191.   : "a0","a1","d0","d1", "memory");
  192. }
  193. static __inline LONG 
  194. SendAmigaGuideCmdA (BASE_PAR_DECL APTR cl,STRPTR cmd,struct TagItem *attrs)
  195. {
  196.   BASE_EXT_DECL
  197.   register LONG  _res  __asm("d0");
  198.   register struct AmigaGuideBase* a6 __asm("a6") = BASE_NAME;
  199.   register APTR a0 __asm("a0") = cl;
  200.   register STRPTR d0 __asm("d0") = cmd;
  201.   register struct TagItem *d1 __asm("d1") = attrs;
  202.   __asm __volatile ("jsr a6@(-0x66)"
  203.   : "=r" (_res)
  204.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1)
  205.   : "a0","a1","d0","d1", "memory");
  206.   return _res;
  207. }
  208. static __inline LONG 
  209. SendAmigaGuideContextA (BASE_PAR_DECL APTR cl,struct TagItem *attrs)
  210. {
  211.   BASE_EXT_DECL
  212.   register LONG  _res  __asm("d0");
  213.   register struct AmigaGuideBase* a6 __asm("a6") = BASE_NAME;
  214.   register APTR a0 __asm("a0") = cl;
  215.   register struct TagItem *d0 __asm("d0") = attrs;
  216.   __asm __volatile ("jsr a6@(-0x60)"
  217.   : "=r" (_res)
  218.   : "r" (a6), "r" (a0), "r" (d0)
  219.   : "a0","a1","d0","d1", "memory");
  220.   return _res;
  221. }
  222. static __inline LONG 
  223. SetAmigaGuideAttrsA (BASE_PAR_DECL APTR cl,struct TagItem *attrs)
  224. {
  225.   BASE_EXT_DECL
  226.   register LONG  _res  __asm("d0");
  227.   register struct AmigaGuideBase* a6 __asm("a6") = BASE_NAME;
  228.   register APTR a0 __asm("a0") = cl;
  229.   register struct TagItem *a1 __asm("a1") = attrs;
  230.   __asm __volatile ("jsr a6@(-0x6c)"
  231.   : "=r" (_res)
  232.   : "r" (a6), "r" (a0), "r" (a1)
  233.   : "a0","a1","d0","d1", "memory");
  234.   return _res;
  235. }
  236. static __inline LONG 
  237. SetAmigaGuideContextA (BASE_PAR_DECL APTR cl,unsigned long id,struct TagItem *attrs)
  238. {
  239.   BASE_EXT_DECL
  240.   register LONG  _res  __asm("d0");
  241.   register struct AmigaGuideBase* a6 __asm("a6") = BASE_NAME;
  242.   register APTR a0 __asm("a0") = cl;
  243.   register unsigned long d0 __asm("d0") = id;
  244.   register struct TagItem *d1 __asm("d1") = attrs;
  245.   __asm __volatile ("jsr a6@(-0x5a)"
  246.   : "=r" (_res)
  247.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1)
  248.   : "a0","a1","d0","d1", "memory");
  249.   return _res;
  250. }
  251. static __inline void 
  252. UnlockAmigaGuideBase (BASE_PAR_DECL long key)
  253. {
  254.   BASE_EXT_DECL
  255.   register struct AmigaGuideBase* a6 __asm("a6") = BASE_NAME;
  256.   register long d0 __asm("d0") = key;
  257.   __asm __volatile ("jsr a6@(-0x2a)"
  258.   : /* no output */
  259.   : "r" (a6), "r" (d0)
  260.   : "a0","a1","d0","d1", "memory");
  261. }
  262.  
  263. #undef BASE_EXT_DECL
  264. #undef BASE_EXT_DECL0
  265. #undef BASE_PAR_DECL
  266. #undef BASE_PAR_DECL0
  267. #undef BASE_NAME
  268.  
  269. __END_DECLS
  270.  
  271. #endif /* _INLINE_AMIGAGUIDE_H */
  272.